package cn.elead.chaos.remote.web.system.service;
import java.util.List;

import cn.elead.chaos.mybatils.web.page.TableDataInfo;
import cn.elead.chaos.remote.web.system.domain.SysConfig;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;

/**
 * 参数配置Service接口
 * 
 * @author luopeng
 * @date 2020-02-26 15:03:09
 */
public interface IRemoteConfigService 
{

	/**
	 * 查询参数配置分页列表
	 * 
	 * @param config 参数配置
	 * @return 参数配置集合
	 */
	@RequestLine("GET /system/config/page")
	public TableDataInfo<SysConfig> page(@QueryMap SysConfig config);

	/**
     * 查询参数配置列表
     * 
     * @param config 参数配置
     * @return 参数配置集合
     */
    @RequestLine("GET /system/config/list")
    public List<SysConfig> list(@QueryMap SysConfig config);

    /**
     * 查询参数配置
     * 
     * @param configId 参数配置ID
     * @return 参数配置
     */
    @RequestLine("GET /system/config/{configId}")
    public SysConfig getInfo(@Param("configId") Integer configId);
    
    /**
     * 根据参数键名查询参数值
     * @param configKey
     * @return
     */
    @RequestLine("GET /system/config/configKey/{configKey}")
    public String getConfigKey(@Param("configKey") String configKey);


    /**
     * 新增参数配置
     * 
     * @param config 参数配置
     * @return 结果
     */
    @RequestLine("POST /system/config") 
    public int add(SysConfig config);

    /**
     * 修改参数配置
     * 
     * @param config 参数配置
     * @return 结果
     */
    @RequestLine("PUT /system/config") 
    public int edit(SysConfig config);

    /**
     * 批量删除参数配置
     * 
     * @param configIds 需要删除的参数配置ID
     * @return 结果
     */
   	@RequestLine("DELETE /system/config/{configId}")
    public int remove(@Param("configId") String configId);
    
}